﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Diagnostics;
namespace AGVControlSystemPro
{
    static class Program
    {
        /// <summary>
        /// 应用程序的主入口点。
        /// </summary>
        [STAThread]//简单的说法:[STAThread]指示应用程序的默认线程模型是单线程单元 (STA)
        static void Main()
        {
            Application.EnableVisualStyles();//系统方法：此方法为应用程序启用可视样式，简单的说就是让你的控件（包括窗体）显示出来
            Application.SetCompatibleTextRenderingDefault(false);//如果控件和操作系统支持视觉样式，则控件将以视觉样式进行绘制。
           
            //禁止多个进程同时打开
            Process[] processArry = Process.GetProcesses();//获取全部进程并保存在数组中,Process类的作用是对系统进程进行管理
            int currentCount = 0;//当前进程总数
            foreach (Process process in processArry)
            {
                if (process.ProcessName == Process.GetCurrentProcess().ProcessName)//当前线程名包含在总线程中
                {
                    currentCount += 1;
                }
            }
            if (currentCount > 1)//当进程个数大于1时禁止运行
            {
                Application.Exit();//立即终止当前进程，应用程序即强制退出。
                return;
            }
            CommonMethods.GetLanguage();//语言初始化
            FrmLogin objFrmLogin = new FrmLogin();
            DialogResult result = objFrmLogin.ShowDialog();
            if (result == DialogResult.OK)
            {
                Application.Run(new FrmMain());
            }
            else
            {
                Application.Exit();
            }
        }
        public static Models.SysAdmins currentAdmins = null;//定义一个全局变量，用来存储当前的登录用户信息
    }
}
